#pragma once
#include <QString>

#include "IDefine.h"

class QObject;
class QWidget;

/// expose main UI elements
///  TODO:using char*?
class KeySearchWidget;
class SImageButton;
class S_GUIFRAME_EXPORT IMainFrame {
 public:
  virtual int existCmdWindow(int cmdId, const QString& params,
                             bool enableParam = true) = 0;
  virtual int openCmdWindow(int cmdId, const QString& params, QWidget* widget,
                            const QString& title, bool popup = false) = 0;
  virtual void activateCmdWindow(int windowId) = 0;
  virtual void updateWindowTitle(int windowId, const QString& title) = 0;
  virtual void setCommonPageNotify(int* ids, int size, int type) = 0;
  virtual void setIasMenuNotify(const QString& iasmenu) = 0;

  virtual void addStatusbarItem(QWidget* btn, QWidget* before = nullptr) = 0;

  virtual KeySearchWidget* searchWidget() = 0;
  virtual QWidget* cmdWindow(int tabid) = 0;
};
